// import { onNetworkStateChange } from './listener'
// import * as C from './config'
// import { read, write, append } from './io'
// /**
//  * 在线时，将表单数据提交到服务端；离线时，将表单数据写入到本地文件进行持久化，以便在网络恢复后再提交到服务器
//  * @param {Object} api API函数
//  * @param {Object} param API函数所需的参数信息
//  */
// export async function doSave(api, param) {
// 	if (C.networkOnline()) {
// 		// 正常请求
// 		return await api(param)
// 	} else {
// 		// 离线存储表单数据到本地文件
// 		try {
// 			const dataContent = JSON.stringify(param)
// 			console.log(dataContent, 'dosave方法写入的内容');
// 			//TODO: 写文件
// 			const apiConfig = C.apiDataMapping.get(api)
// 			const {path:filePath, isAppend, appendTo} = apiConfig
// 			console.log(filePath,'路径index.js');
// 			if(isAppend) {
// 				await append(filePath, param, appendTo)	
// 			}else {
// 				await write(filePath,  dataContent)
// 			}
// 			//TODO: 需要斟酌一下业务代码需要什么样的返回值
// 			return offlineResponse(true)
// 		} catch (err) {
// 			return offlineResponse(false, false, err.message)
// 		}
// 	}
// }

// /**
//  * 在线时，从服务端正常获取接口数据；离线时，从本地文件读取当前api之前返回过的数据
//  * @param {Object} api API函数
//  * @param {Object} param API函数所需的参数信息
//  */
// export async function doGet(api, param, prefix='') {
// 	// 从本地文件文件中读取
// 	// ${C.localFileDirectory}
// 	const paramId = param.id
// 	const apiConfig = C.apiDataMapping.get(api)
// 	const dataFilePrefix =  
// 		apiConfig.prefix
// 			? prefix
// 				? prefix
// 				: paramId ? paramId : ''
// 			: ''
// 	const dataFilePath=`/${dataFilePrefix}${apiConfig.path}`
// 	if (C.networkOnline()) {
// 		// 正常请求
// 		const result =  await api(param)
// 		write(dataFilePath, JSON.stringify(result))
// 		return result
// 	} else {
// 		try {
// 			//TODO: 读取文件内容	
// 			const result = await read(dataFilePath)
// 			// console.log(result, '读取到的信息---index51行')
// 			let JsonData =  JSON.parse(result)
// 			const {localQuery, selector} = apiConfig
// 			if(localQuery) {
// 				return  selector(JsonData,param)
// 			}
// 			return JsonData
// 		} catch (err) {
// 			return offlineResponse(false, false, err.message)
// 		}
// 	}
// }

// /**
//  * 在进行离线业务前，获取离线状态下所需要提前离线保存的选项等数据，保存到本地文件
//  * @param {Object} api API函数
//  * @param {Object} param API函数所需的参数信息
//  */
// export async function doCache(api, param, prefix='') {
// 	if(!C.networkOnline()){
// 		throw new Error("保存离线数据时请保持网络连接正常")
// 	}
// 	let result
// 	//请求API，获取离线状态下所需要提前离线保存的选项等数据
// 	try{
// 		result = await api(param)
// 		// console.log(result, 'result----cache----offine-index-71')
// 	} catch (err) {
// 		//请求API失败提示
// 		uni.showToast({
// 			title: '获取数据失败:'+err.message,
// 			icon:'none'			
// 		})
// 		throw err
// 	}
	
// 	try {
// 		// 将要缓存的数据保存到本地文件
// 		const dataContent = JSON.stringify(result)
// 		const apiConfig = C.apiDataMapping.get(api)
// 		const paramId = param.id
// 		const dataFilePrefix =
// 			apiConfig.prefix
// 				? prefix
// 					? prefix
// 					: paramId ? paramId : ''
// 				: ''
// 		const dataFilePath=`/${dataFilePrefix}${apiConfig.path}`
// 		const writeSuccess = await write(dataFilePath,  dataContent)
// 		uni.showToast({
// 			title: '缓存数据成功',
// 			icon:'none'			
// 		})
// 		//2023 03/03 ls添加 之前没有返回
// 		return dataContent
// 	} catch (err) {
// 		// return offlineResponse(false, false, err.message)
// 	}
// }

/** 构造离线请求的相应数据格式 */
export function offlineResponse(result, success=true, message='success!') {
	// let message, status
	return {
		message,
		result,
		success,
		status: success?1:0,	
		messages:[
			{
				body:message,
				level:1
			}
		]
	}
}

// export {initCache, cacheStatus, cacheLevels, RepairMeasure, cacheOrderList, detailList, dictionaryCache} from './cache.js'


